package models

import "time"

// LogLevel 日志级别
type LogLevel string

const (
	LogLevelDebug LogLevel = "debug"
	LogLevelInfo  LogLevel = "info"
	LogLevelWarn  LogLevel = "warn"
	LogLevelError LogLevel = "error"
	LogLevelFatal LogLevel = "fatal"
)

// LogEntry 日志条目
type LogEntry struct {
	Time    time.Time `json:"time"`
	Level   LogLevel  `json:"level"`
	Module  string    `json:"module"`
	Message string    `json:"message"`
	Data    map[string]interface{} `json:"data,omitempty"`
}

// LogQuery 日志查询参数
type LogQuery struct {
	Level    string    `json:"level,omitempty"`    // 日志级别过滤
	Module   string    `json:"module,omitempty"`   // 模块过滤
	StartTime *time.Time `json:"startTime,omitempty"` // 开始时间
	EndTime   *time.Time `json:"endTime,omitempty"`   // 结束时间
	Limit     int       `json:"limit,omitempty"`      // 限制条数，默认 100
}

// LogResponse 日志响应
type LogResponse struct {
	Logs []LogEntry `json:"logs"`
	Total int       `json:"total"`
}

